package cn.hg.base.kit;

import java.util.UUID;

import org.apache.commons.codec.digest.Md5Crypt;

public final class PasswordKit {

	/**
	 * 生成密码盐
	 *
	 * @return 盐字串
	 */
	public static String genSalt () {
		return UUID.randomUUID().toString();
	}

	/**
	 * 生成私密字串
	 *
	 * @param salt
	 *            密码盐
	 * @param password
	 *            密码
	 *
	 * @return 私密字串
	 */
	public static String genSecretPassword (String salt, String password) {
		return Md5Crypt.apr1Crypt(password.getBytes(), salt);
	}

	/**
	 * 校验传入私密字串是否与盐字串和密码生成的私密字串相同
	 *
	 * @param salt
	 *            密码盐
	 * @param password
	 *            密码
	 * @param secretPassword
	 *            私密字串
	 *
	 * @return true：验证成功，false：验证失败
	 */
	public static boolean validatePassword (String salt, String password, String secretPassword) {
		return secretPassword.equals(PasswordKit.genSecretPassword(salt, password));
	}

}
